package com.crazy.bookstore.utils;


import static org.apache.commons.codec.digest.DigestUtils.md5Hex;

/**
 * @author: 卢辉宇
 * @date: 2022/12/29 21:30
 * @description:
 */
public class MD5Utils {

        /*调用原始的DigestUtils类中的md5Hex()方法生成密码*/
        public static String md5Digest(String source){
            return md5Hex(source);
        }

        /**
         * 通过加salt的方式对MD5密码二次加密
         * @param source 原始密码
         * @param salt 用于给原始密码二次加密
         * @return 最终的MD5密码
         */
        public static String md5Digest(String source,Integer salt){
            char[] chars=source.toCharArray();/*使字符串变为char数组*/
            /*把每一位字符都加上一个salt,再重新生成字符串作为密码的原码，进一步加密*/
            for (int i=0;i<chars.length;i++){
                chars[i]=(char)(chars[i]+salt);//得到加了salt的char
            }
            String target=new String(chars);//把加了salt的char转化成字符串作为密码的原码
            return md5Hex(target); //返回最终的MD5密码
        }

}
